package com.whfc.fuum.dao;

import com.whfc.fuum.dto.SysDictDTO;
import com.whfc.fuum.entity.SysDict;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface SysDictMapper {
    int deleteByPrimaryKey(Integer id);

    int insertSelective(SysDict record);

    SysDict selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysDict record);

    /**
     * 查询字典类型列表
     *
     * @return
     */
    List<SysDictDTO> selectTypeList();

    /**
     * 查询字典类型列表
     *
     * @param deptId 项目ID
     * @return
     */
    List<SysDictDTO> selectTypeListByDeptId(@Param("deptId") Integer deptId);

    /**
     * 查询某类型下的数据
     *
     * @param pid
     * @return
     */
    List<SysDictDTO> selectByPid(@Param("pid") Integer pid);

    /**
     * 通过id查找名称
     *
     * @param id
     * @return
     */
    String selectNameById(@Param("id") Integer id);

    /**
     * 根据编码查找
     *
     * @param code
     * @return
     */
    SysDictDTO selectByCode(@Param("code") String code);

    /**
     * 根据名称查找
     *
     * @param name
     * @return
     */
    SysDictDTO selectByName(@Param("name") String name);

    /**
     * 根据名字和父节点查找
     *
     * @param name
     * @param pid
     * @return
     */
    SysDictDTO selectByNameAndPid(@Param("name") String name, @Param("pid") Integer pid);

    /**
     * 根据父节点编码以及名称查找
     *
     * @param name       名称
     * @param parentCode 父节点编码
     * @return 字典
     */
    SysDictDTO selectByNameAndParentCode(@Param("name") String name, @Param("parentCode") String parentCode);

}